<?php
/*
 * Page Editar Centro (Centros de atencion de pacientes).
 * @Autor: Andrés Ubilla.
 */
class Editar extends TPage{
    public function onLoad($param){
        parent::onLoad($param);
        if(!$this->IsPostBack){
            $this->validarSession();
            $this->cargarInterfaz();
        }
    }
    
    private function validarSession(){
        $oUsuario = Util::getSession("Usuario");
        if(Util::isNullOrEmpty($oUsuario)){
            $this->Response->redirect($this->Service->constructUrl("Home"));
        }
    }
    
    private function cargarInterfaz(){
        $oCentro = $this->obtenerCentroPorId();
        $this->iniciarControles($oCentro);
    }
    
    private function obtenerCentroPorId(){
        $idCentro = Util::isNull($this->Request["idCentro"], "-1");
        $oCentro = new Centro();
        
        if($idCentro != "-1"){
                $oCentroBLL = new CentroBLL();
                $oCentro = $oCentroBLL->obtenerPorId($idCentro);

                return $oCentro;
            }else{              
                $oCentro = null;
                return $oCentro;
            }
    }
    
    private function iniciarControles($oCentro){
        $this->txtDireccion->Attributes->Add("onBlur","cargarMapa()");
        $this->txtNombre->Attributes->Add("required","required");
        $this->txtDireccion->Attributes->Add("required","required");
        $this->txtHoraInicioAM->Attributes->Add("required","required");
        $this->txtHoraFinAM->Attributes->Add("required","required");
        $this->txtHoraInicioPM->Attributes->Add("required","required");
        $this->txtHoraFinPM->Attributes->Add("required","required");
        
        try{
            if($oCentro != null){
                $this->litNombreCentro->Text = $oCentro->getNombre();
                $this->txtNombre->Text = $oCentro->getNombre();
                $this->txtDireccion->Text = $oCentro->getDireccion();
                $this->txtTelefono->Text = $oCentro->getTelefono();
                $this->txtHoraInicioAM->Text = $oCentro->getHoraInicioAM();
                $this->txtHoraFinAM->Text = $oCentro->getHoraFinAM();
                $this->txtHoraInicioPM->Text = $oCentro->getHoraInicioPM();
                $this->txtHoraFinPM->Text = $oCentro->getHoraFinPM();
                $this->direccion->Value = $oCentro->getDireccion();
            }
        } catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    private function limpiarForm(){
        $this->txtNombre->Text = "";
        $this->txtDireccion->Text = "";
        $this->txtTelefono->Text = "";
        $this->txtHoraInicio->Text = "";
        $this->txtHoraFin->Text = "";
    }
    
    public function btnGuardarCentroOnClick($sender, $param){
        try{
            $oCentro = new Centro();

            $oCentro->setId($this->Request["idCentro"]);
            $oCentro->setNombre($this->txtNombre->Text);
            $oCentro->setDireccion($this->txtDireccion->Text);
            $oCentro->setTelefono($this->txtTelefono->Text);
            $oCentro->setHoraInicioAM($this->txtHoraInicioAM->Text);
            $oCentro->setHoraFinAM($this->txtHoraFinAM->Text);
            $oCentro->setHoraInicioPM($this->txtHoraInicioPM->Text);
            $oCentro->setHoraFinPM($this->txtHoraFinPM->Text);
            $oCentro->setLatitud($this->lat->Value);
            $oCentro->setLongitud($this->lng->Value);
            $oCentro->setEstado(1);

            $oCentroBLL = new CentroBLL();
            $oCentroBLL->editar($oCentro);

            Util::setSession("Mensaje", $this->litAlert->Text = Util::setMensajeUsuario("Centro editado exitosamente.", Util::MENSAJE_OK));
            $this->Response->redirect($this->Service->constructUrl("Centro.Listar"));
            
        } catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
}
?>
